building it
prerequisites
- Visual Studio 2019 or newer, with the "Universal Windows Platform development" workload installed (this grabs the Windows 10 SDK and the UWP/XAML build tools)
- Windows 10 SDK 10.0.19041.0 (the project also supports down to 10.0.17763.0, i.e. Windows 10 1809)
This is a legacy-style UWP project, not an SDK one - dotnet build won't work here. You need MSBuild with the UWP/XAML targets, which only exist with Visual Studio. There's also no test project.
opening & building
- Open
Fort.ind UWP.slnin Visual Studio - Pick a Platform (x86/x64/ARM/ARM64) and Configuration (Debug/Release) from the toolbar
- Build with Ctrl+Shift+B
If you'd rather build from the command line (this is basically what CI does),
msbuild "Fort.ind UWP.sln"
msbuild "Fort.ind UWP\Fort.ind UWP.csproj" /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=xx.0 /p:GenerateAppxPackageOnBuild=true /restore
A command-line build only compiles - it can't verify runtime or visual issues. Visual Studio's own deploy step (F5) is what actually refreshes the installed package; a plain command-line build followed by a manual install can end up running a stale app. For anything you wanna take a look at, build and press F5 in Visual Studio.
running & debugging
Just hit F5 in Visual Studio with a platform matching your machine (x64 is the common case) - it'll deploy and attach the debugger for you. A couple of things to know:
- You'll need Developer Mode (or "Sideload apps") turned on in Settings → Update & Security → For developers - VS will prompt you if it's off
- ARM/ARM64 builds need an actual ARM device or a remote machine to deploy to, since there's no ARM emulator for a typical x64 dev box
packaging & signing
The project is set up to sign packages with a test certificate (Fort.ind UWP_TemporaryKey.pfx), but that file isn't committed - Visual Studio will generate one for you automatically the first time you build locally.
For end users, installing a built package means:
- Install the exported
.cercertificate - into trusted people, not trusted root certs - Run the .msix/.appx, or just run the included
scripts\Install.ps1as admin, which handles the cert, VCLibs/WinUI runtime dependencies, and enabling sideloading all in one go
CI & versioning
CI (.github/workflows/build-msix.yml) builds x86/x64/ARM64 packages on every push to master and on pull requests; a v* tag additionally cuts a GitHub release.
Pull request builds are always unsigned. Any other build (a push to master, or a v* tag) is signed using a certificate stored in GitHub secrets, when one is configured - otherwise it falls back to building unsigned there too.
also! if you want to bump the version, its really simple just edit package.appxmanifest